# -*- coding: utf-8 -*-
import re
import codecs

def process_book_catalog(input_file_path, output_file_path):
    """
    处理图书目录文件，按要求格式化内容并保存到新文件
    
    参数:
    input_file_path: 输入文件路径
    output_file_path: 输出文件路径
    """
    with codecs.open(input_file_path, 'r', 'utf-8') as f:
        lines = f.readlines()

    processed_lines = []
    for line in lines:
        # 去除行尾的换行符和空白字符
        line = line.strip()
        if not line:
            continue

        # 处理特殊行（如'IV	信息系统项目管理师教程（第集整搜索	马军老师	可以看到链接参加课程'）
        if line.startswith('IV') or line.startswith('V') or line.startswith('VI'):
            # 检查是否包含'马军老师'，如果包含则跳过
            if u'马军老师' in line:
                continue
            processed_lines.append(line)
            continue

        # 过滤包含'马军老师'或'本章练习'的行
        if u'马军老师' in line or u'本章练习' in line:
            continue

        # 去除页码信息和⋯⋯符号
        # 使用Unicode转义序列避免编码问题
        while u'\u22ef' in line:
            line = line.replace(u'\u22ef', '')
        # 去除可能残留的页码数字
        line = re.sub(r'\s*\d+$', '', line)
        # 去除可能的制表符
        line = line.replace('\t', ' ')

        # 确定标题级别并添加对应的#符号
        stripped_line = line.strip()
        # 使用Unicode转义序列避免编码问题
        if u'\u7b2c' in stripped_line and u'\u7ae0' in stripped_line and stripped_line.index(u'\u7b2c') == 0:
            # 一级标题
            processed_line = u'# {}'.format(stripped_line)
        elif re.match(r'^\d+\.\d+\.\d+', stripped_line):
            # 三级标题
            processed_line = u'### {}'.format(stripped_line)
        elif re.match(r'^\d+\.\d+', stripped_line):
            # 二级标题
            processed_line = u'## {}'.format(stripped_line)
        else:
            # 其他行保持不变
            processed_line = stripped_line

        processed_lines.append(processed_line)

    # 将处理后的内容写入输出文件
    with codecs.open(output_file_path, 'w', 'utf-8') as f:
        for line in processed_lines:
            f.write(line + '\n')

if __name__ == '__main__':
    input_file = u'd:\\4.gitee_repository\\python_script\\4_文本文件\\2_处理图书目录\\信息系统项目管理师第四版教材目录.txt'
    output_file = u'd:\\4.gitee_repository\\python_script\\4_文本文件\\2_处理图书目录\\格式化后的目录.txt'
    process_book_catalog(input_file, output_file)
    print(u'目录处理完成，结果已保存至: {}'.format(output_file))